bind 0.0.0.0
Docker containerのように仮想環境で起動しているプロセスと別containerのプロセスまたはhostマシンが通信する際には--bind 0.0.0.0のように指定する必要がある マシンは複数のネットワークインタフェースを持つ
以下のように確認できる
code:shell
# on Debian stretch
root@c90ba51a3602:/# ip address | grep "inet "
inet 127.0.0.1/8 scope host lo
inet 172.17.0.2/16 brd 172.17.255.255 scope global eth0
code:shell
# on macOS
$ ifconfig | grep "inet "
inet 127.0.0.1 netmask 0xff000000
inet 192.168.11.5 netmask 0xffffff00 broadcast 192.168.11.255
0.0.0.0はこれらすべてを指す
Railsはデフォルトでは127.0.0.1 (localhost) ループバックアドレスにbindする これは自身を示すIPアドレスなので外部には公開されない
素のマシンで開発している場合、0.0.0.0を常に公開するのはセキュリティ上よろしくない
参考